package com.ruoyi.asms.domain;


import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 故障信息视图对象 fault_info_view
 * 
 * @author yfkj
 * @date 2021-11-01
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FaultInfoView extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** 故障资产设备信息主键 */
    @Excel(name = "故障资产设备信息主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障资产设备信息主键")
    private Long faultAssetId;
    /** 故障信息外键 */
    @Excel(name = "故障信息外键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障信息外键")
    private Long faultId;
    /** 故障资产外键 */
    @Excel(name = "故障资产外键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障资产外键")
    private Long assetId;
    /** 资产设备故障类型外键 */
    @Excel(name = "资产设备故障类型外键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "资产设备故障类型外键")
    private Long assetFaultTypeId;
    /** 故障描述 */
    @Excel(name = "故障描述")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障描述")
    private String description;
    /** 故障描述图片 */
    @Excel(name = "故障描述图片")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障描述图片")
    private String descriptionImages;
    /** 故障描述视频 */
    @Excel(name = "故障描述视频")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障描述视频")
    private String descriptionVideos;
    /** 故障处理所属阶段(1、故障报修阶段；2、故障派单阶段；3、故障处理阶段；4、故障处理结果确认阶段；5、投诉与反馈确认阶段) */
    @Excel(name = "故障处理所属阶段(1、故障报修阶段；2、故障派单阶段；3、故障处理阶段；4、故障处理结果确认阶段；5、投诉与反馈确认阶段)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障处理所属阶段(1、故障报修阶段；2、故障派单阶段；3、故障处理阶段；4、故障处理结果确认阶段；5、投诉与反馈确认阶段)")
    private Integer stage;
    /** 故障处理是否结束(0是，1否) */
    @Excel(name = "故障处理是否结束(0是，1否)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障处理是否结束(0是，1否)")
    private Integer isFinish;
    /** 资产标准型号(冗余设计，查询列表时避免跨库查询) */
    @Excel(name = "资产标准型号(冗余设计，查询列表时避免跨库查询)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "资产标准型号(冗余设计，查询列表时避免跨库查询)")
    private Long assetTemplateId;
    /** 资产品牌(冗余设计，查询列表时避免跨库查询) */
    @Excel(name = "资产品牌(冗余设计，查询列表时避免跨库查询)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "资产品牌(冗余设计，查询列表时避免跨库查询)")
    private Long brandId;
    /** 资产所属批次(冗余设计，查询列表时避免跨库查询) */
    @Excel(name = "资产所属批次(冗余设计，查询列表时避免跨库查询)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "资产所属批次(冗余设计，查询列表时避免跨库查询)")
    private Long projectId;
    /** 资产类型信息主键(冗余设计，查询列表时避免跨库查询) */
    @Excel(name = "资产类型信息主键(冗余设计，查询列表时避免跨库查询)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "资产类型信息主键(冗余设计，查询列表时避免跨库查询)")
    private Long assetTypeId;
    /** 类型祖级列表(冗余设计，查询列表时避免跨库查询) */
    @Excel(name = "类型祖级列表(冗余设计，查询列表时避免跨库查询)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "类型祖级列表(冗余设计，查询列表时避免跨库查询)")
    private String assetTypeAncestors;
    /** 售后维护人(冗余设计，查询列表时避免跨库查询) */
    @Excel(name = "售后维护人(冗余设计，查询列表时避免跨库查询)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "售后维护人(冗余设计，查询列表时避免跨库查询)")
    private Long faultResolveUserId;
    /** 售后维护公司(冗余设计，查询列表时避免跨库查询) */
    @Excel(name = "售后维护公司(冗余设计，查询列表时避免跨库查询)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "售后维护公司(冗余设计，查询列表时避免跨库查询)")
    private Long maintenanceDeptId;
    /** 维护部门祖级列表(冗余设计，查询列表时避免跨库查询) */
    @Excel(name = "维护部门祖级列表(冗余设计，查询列表时避免跨库查询)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "维护部门祖级列表(冗余设计，查询列表时避免跨库查询)")
    private String maintenanceDeptAncestors;
    /** 故障报修人 */
    @Excel(name = "故障报修人")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障报修人")
    private Long faultFindUserId;
    /** 故障发生地点外键 */
    @Excel(name = "故障发生地点外键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障发生地点外键")
    private Long addressId;
    /** 故障资产所属组织部门 */
    @Excel(name = "故障资产所属组织部门")
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障资产所属组织部门")
    private Long ownDeptId;
    /** 使用部门祖级列表（冗余设计，便于查询） */
    @TableField(exist = true)
    @ApiModelProperty(value =  "故障资产使用部门")
    private Long useDeptId;
    @Excel(name = "使用部门祖级列表", readConverterExp = "冗=余设计，便于查询")
    @TableField(exist = true)
    @ApiModelProperty(value =  "使用部门祖级列表")
    private String useDeptAncestors;
    public static final String FAULT_ASSET_ID="fault_asset_id";
    public static final String FAULT_ID="fault_id";
    public static final String ASSET_ID="asset_id";
    public static final String ASSET_FAULT_TYPE_ID="asset_fault_type_id";
    public static final String DESCRIPTION="description";
    public static final String DESCRIPTION_IMAGES="description_images";
    public static final String DESCRIPTION_VIDEOS="description_videos";
    public static final String STAGE="stage";
    public static final String IS_FINISH="is_finish";
    public static final String CREATE_BY="create_by";
    public static final String CREATE_TIME="create_time";
    public static final String UPDATE_BY="update_by";
    public static final String UPDATE_TIME="update_time";
    public static final String REMARK="remark";
    public static final String ASSET_TEMPLATE_ID="asset_template_id";
    public static final String BRAND_ID="brand_id";
    public static final String PROJECT_ID="project_id";
    public static final String ASSET_TYPE_ID="asset_type_id";
    public static final String ASSET_TYPE_ANCESTORS="asset_type_ancestors";
    public static final String FAULT_RESOLVE_USER_ID="fault_resolve_user_id";
    public static final String MAINTENANCE_DEPT_ID="maintenance_dept_id";
    public static final String MAINTENANCE_DEPT_ANCESTORS="maintenance_dept_ancestors";
    public static final String FAULT_FIND_USER_ID="fault_find_user_id";
    public static final String ADDRESS_ID="address_id";
    public static final String OWN_DEPT_ID="own_dept_id";

    public static final String USE_DEPT_ANCESTORS="use_dept_ancestors";
    public static final String USE_DEPT_ID="use_dept_id";
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("faultAssetId", getFaultAssetId())
            .append("faultId", getFaultId())
            .append("assetId", getAssetId())
            .append("assetFaultTypeId", getAssetFaultTypeId())
            .append("description", getDescription())
            .append("descriptionImages", getDescriptionImages())
            .append("descriptionVideos", getDescriptionVideos())
            .append("stage", getStage())
            .append("isFinish", getIsFinish())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("assetTemplateId", getAssetTemplateId())
            .append("brandId", getBrandId())
            .append("projectId", getProjectId())
            .append("assetTypeId", getAssetTypeId())
            .append("assetTypeAncestors", getAssetTypeAncestors())
            .append("faultResolveUserId", getFaultResolveUserId())
            .append("maintenanceDeptId", getMaintenanceDeptId())
            .append("maintenanceDeptAncestors", getMaintenanceDeptAncestors())
            .append("faultFindUserId", getFaultFindUserId())

            .append("ownDeptId", getOwnDeptId())

            .toString();
    }
}
